package com.heihei.demo01duck;

import com.heihei.demo01duck.fly.FlyBehavior;
import com.heihei.demo01duck.quack.QuackBehavior;

/**
 *  鸭子  顶层抽象类
 *
 * @version 1.0
 * @since JDK1.8
 * @author duanhengfei
 * @date 2021年02月27日 11:32:56
 */
public abstract class Duck {
    FlyBehavior flyBehavior;
    QuackBehavior quackBehavior;

    public abstract void display();

    public void performFly() {
        flyBehavior.fly();
    }

    public void performQuack() {
        quackBehavior.quack();
    }

    public void swim() {
        System.out.println("All Ducks float, even decoys!");
    }
}